home *** CD-ROM | disk | FTP | other *** search
- #include "emu.h"
- #include "rmov.h"
-
- void emu_56() /* fsave */
- {
- void *addr = get_modrm();
- int i, tag_word=0;
-
- status_word = status_word & ~SW_TOP;
- status_word += (top&7) * SW_TOPS;
-
- *(int *)(addr+0) = control_word & 0xffff;
- *(int *)(addr+4) = status_word & 0xffff;
- for (i=0; i<8; i++)
- {
- tag_word |= (st(i).tag << (((i+top)&7)*2));
- r_mov(st(i), (long double *)(addr + 0x1c + i*10));
- }
- *(int *)(addr+8) = tag_word & 0xffff;
- }
-